package com.chushouya.common.constant;

/**
 * RabbitMQ 队列名称枚举
 * 
 * @author chushouya
 * @date 2025-08-13
 */
public enum RabbitMqQueueEnum {
    
    /**
     * 订单创建队列
     */
    ORDER_CREATED("chushouya.order.created", "订单创建队列"),
    
    /**
     * 红包核销队列
     */
    BONUS_VERIFICATION("chushouya.bonus.verification", "红包核销队列"),
    
    /**
     * 订单支付队列
     */
    ORDER_PAYMENT("chushouya.order.payment", "订单支付队列"),
    
    /**
     * 订单完成队列
     */
    ORDER_COMPLETED("chushouya.order.completed", "订单完成队列"),
    
    /**
     * 短信通知队列
     */
    SMS_CLERK_NOTIFY("chushouya.notify.clerk.sms", "短信通知工程师队列"),
    
    /**
     * 微信通知队列
     */
    WECHAT_CLERK_NOTIFY("chushouya.notify.clerk.wechat", "微信通知工程师队列"),
    
    /**
     * 订单状态通知队列
     */
    ORDER_STATUS_USER_NOTIFY("chushouya.notify.order.user.status", "用户订单状态通知队列"),
    
    /**
     * 推广标签处理队列
     */
    PROMOTE_LABEL("chushouya.promote.label", "推广标签处理队列"),
    
    /**
     * 速回收订单创建队列
     */
    SUHUISHOU_ORDER_CREATE("chushouya.suhuishou.order.create", "速回收订单创建队列"),
    
    /**
     * 合作商订单状态通知队列
     */
    PARTNER_ORDER_STATUS_NOTIFY("chushouya.notify.partner.order.status", "合作商订单状态通知队列"),
    
    /**
     * 快递预约队列
     */
    EXPRESS_RESERVATION("chushouya.express.reservation", "快递预约队列"),
    
    /**
     * 快递取消队列
     */
    EXPRESS_CANCEL("chushouya.express.cancel", "快递取消队列"),
    
    /**
     * 支付宝订阅消息队列
     */
    ALIPAY_SUBSCRIBE_MESSAGE("chushouya.alipay.subscribe.message", "支付宝订阅消息队列"),
    
    /**
     * 支付宝流程处理队列
     */
    ALIPAY_FLOW("chushouya.alipay.flow", "支付宝流程处理队列"),
    
    /**
     * 速回收品牌同步队列
     */
    SUHUISHOU_BRAND_SYNC("chushouya.suhuishou.brand.sync", "速回收品牌同步队列"),
    
    /**
     * 速回收产品同步队列
     */
    SUHUISHOU_PRODUCT_SYNC("chushouya.suhuishou.product.sync", "速回收产品同步队列"),
    
    /**
     * 商品评估解析队列
     */
    PRODUCT_EVALUATE_RESOLVE("chushouya.product.evaluate.resolve", "商品评估解析队列"),
    
    /**
     * 铛铛旧衣订单处理队列
     */
    DANGDANG_ORDER("chushouya.dangdang.order", "铛铛旧衣订单处理队列");
    
    private final String queueName;
    private final String description;
    
    RabbitMqQueueEnum(String queueName, String description) {
        this.queueName = queueName;
        this.description = description;
    }
    
    public String getQueueName() {
        return queueName;
    }
    
    public String getDescription() {
        return description;
    }
}
